/*
 * Campeonato.java
 *
 */
package biermanager.nucleo;

import java.util.ArrayList;

/**
 *
 * @author tiagoloureiro
 */
public class Campeonato implements Competicao{
    private EstatisticasDoCampeonato  estatisticasDoCampeonato;
    protected ArrayList<Rodada> rodadas;
    protected String nomeDaCompeticao;
    protected int rodadaAtual;
    protected int numeroDeTimes;

    public Campeonato() {
        estatisticasDoCampeonato = null;
        rodadas = null;
        nomeDaCompeticao = null;
        rodadaAtual = -1;
        numeroDeTimes = -1;
    }

    public Campeonato(int numeroDeTimes){
        nomeDaCompeticao = null;
        estatisticasDoCampeonato = null;
        rodadas = null;
        rodadaAtual = 0;
        this.numeroDeTimes = numeroDeTimes;
        estatisticasDoCampeonato = new EstatisticasDoCampeonato(numeroDeTimes);
    }

    public Campeonato(Rodada[] rodadas, int numeroDeTimes) {
        this.rodadas = new ArrayList<Rodada>(rodadas.length);
        for (int i = 0; i < rodadas.length; i++) {
            this.rodadas.add(rodadas[i]);
        }
        rodadaAtual = 0;
        nomeDaCompeticao = ConstantesDeJogo.laudelino;
        this.numeroDeTimes = numeroDeTimes;
        estatisticasDoCampeonato = new EstatisticasDoCampeonato(numeroDeTimes);
    }

    public Campeonato(ArrayList<Rodada> rodadas, int numeroDeTimes) {
        this.rodadas = rodadas;
        rodadaAtual = 0;
        nomeDaCompeticao = ConstantesDeJogo.laudelino;
        this.numeroDeTimes = numeroDeTimes;
        estatisticasDoCampeonato = new EstatisticasDoCampeonato(numeroDeTimes);
    }

    public String getNomeDaCompeticao() {
        return nomeDaCompeticao;
    }

    public Rodada getRodada(int indiceDaRodada) {
        return (rodadas.get(indiceDaRodada));
    }

    public int getNumeroDeRodadas() {
        return rodadas.size();
    }

    public Rodada getRodadaAtual() {
        return rodadas.get(rodadaAtual);
    }

    public EstatisticasCompeticao getEstatisticasCompeticao() {
        return estatisticasDoCampeonato;
    }
    
}
